/* Google Fonts Roboto import */

/* roboto-100 - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 100;
  src: local('Roboto Thin'), local('Roboto-Thin'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-100.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-100.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-100italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 100;
  src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-100italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-100italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-300 - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-300italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 300;
  src: local('Roboto Light Italic'), local('Roboto-LightItalic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: local('Roboto'), local('Roboto-Regular'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: local('Roboto Italic'), local('Roboto-Italic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-500 - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: local('Roboto Medium'), local('Roboto-Medium'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-500italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 500;
  src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-500italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-500italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: local('Roboto Bold'), local('Roboto-Bold'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 700;
  src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-900 - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 900;
  src: local('Roboto Black'), local('Roboto-Black'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-900.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-900italic - latin_latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 900;
  src: local('Roboto Black Italic'), local('Roboto-BlackItalic'),
       url('../fonts/roboto/roboto-v19-latin_latin-ext-900italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../fonts/roboto/roboto-v19-latin_latin-ext-900italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
    
/* Google Fonts Roboto end */

/* Default font size for old or unscaled browsers. */
html {
	font-size: 10px;
	height: 100%;
}

/* Catching scaled font sizes and/or retina displays for modern browsers only.
   Setting font size to 62.5%, so that the default (usually 16px unscaled) is reset to 10px. */
@media	only screen and (-webkit-min-device-pixel-ratio: 1.2),
		only screen and (-o-min-device-pixel-ratio: 12/10),
		only screen and (min-resolution: 115dpi),
		only screen and (min-resolution: 1.2dppx) {
	
	html {
    	font-size: 62.5%;
	}
}

*, :after, :before {
    box-sizing: border-box;
}

body {
	font-family: Roboto, BlinkMacSystemFont, -apple-system, Segoe UI, Oxygen,
		Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica,
		Arial, sans-serif;
	font-weight: 300;
	letter-spacing: 0.1px;
	font-size: 16px;
	font-size: 1.6rem;
	color: #3E3A39;
	margin: 0px;
	padding: 0px;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #EFF1F2 none repeat scroll 0% 0%;
}

h1 {
	color: #3E3A39;
    font-size: 36px;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 48px;
    margin: 40px 0;
}

h2 {
	color: #3E3A39;
    font-size: 22px;
    font-size: 2.2rem;
    font-weight: 300;
    line-height: 25px;
    margin: 0 0 1em;
}

svg {
	shape-rendering: geometricPrecision;
}

a.button-primary {
    display: inline-block;
    border: 1px solid #3E3A39;
    color: #3E3A39;
    text-decoration: none;
    padding: 10px 30px;
    font-weight: 500;
    white-space: nowrap;
}

a.welcome-button {
     background-color: #FFD800;
     border-color: #FFD800;
     color: #3E3A39;
}

a.button-primary:hover,
a.button-primary:active,
a.button-primary:focus {
    outline: none;
    text-decoration: none;
    background-color: #3E3A39;
    border-color: #3E3A39;
    color: #FFFFFF;
}

#welcome-page-wrapper {
    /* we need to support old Webkit versions on some Linux systems, also older IE need prefix */
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
    min-width: 400px;
}

#welcome-page-header {
    -ms-flex: 0 0 auto;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    padding: 1em 2em 1em 2em;
    background: #FFF;
    width: 100%;
    border-bottom: thin solid #C0C4C6;
}

#inner-welcome-page {
    -ms-flex: 1 1 auto;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    overflow-y: auto;
    min-width: 300px;
    padding-bottom: 1em;
}

/* title-wrapper, content-container, update-container */
#inner-welcome-page > div {
    padding: 0 2em;
}

.inner-content {
    width: 100%;
    height: 100%;
    /* 3 * tile width (360px) + 2 * margin (24px) */ 
    max-width: 1128px;
    margin: 0px auto;
    overflow: hidden;
}

/* Hub search bar */

#hub-search-bar {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    height: 40px;
    width: calc(50% - 2em);
    min-width: 100px;
    max-width: 600px;
    float: right;
}

#hub-search-bar:focus-within {
    -webkit-box-shadow: 1px 1px 4px 0 hsla(195, 2%, 52%, .5);
    box-shadow: 1px 1px 4px 0 hsla(195,2%,52%,.5);
}

#hub-search-bar button {
    margin: 0;
    border: 0;
    outline: 0;
    background-color: #EFF1F2;
    line-height: 0;
}

#hub-search-bar button[type=submit] {
    padding: 0 0 0 14px;
}

#hub-search-bar button[type=submit] svg {
    width: 24px;
    height: 24px;
    padding-top: 1px;
    fill: #6E6E6E;
}

#hub-search-bar button[type=submit]:focus svg,
#hub-search-bar button[type=submit]:hover svg {
    fill: #3e3a39;
    outline: none;
}

#hub-search-bar button[type=reset] {
    padding: 0 12px 0 0;
}

#hub-search-bar button[type=reset] svg {
    padding-top: 1px;
    width: 14px;
    height: 14px;
    stroke: #6e6e6e;
    stroke-width: 1.5px;
}

#hub-search-bar [type=search] {
    outline-offset: -2px;
}

#hub-search-bar [type="search"]::-webkit-search-decoration,
#hub-search-bar [type="search"]::-webkit-search-cancel-button,
#hub-search-bar [type="search"]::-webkit-search-results-button,
#hub-search-bar [type="search"]::-webkit-search-results-decoration {
    display: none;
}

#hub-search-bar input {
    width: 100%;
    padding: 0 12px;
    margin: 0;
    border: 0;
    background-color: #EFF1F2;
    color: #6E6E6E;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
    letter-spacing: 0.08px;
    text-overflow: ellipsis;
    -webkit-appearance: none;
    -moz-appearance: none;
}

#hub-search-bar input::placeholder {
    font-weight: 300;
    color: #6e6e6e;
    text-overflow: ellipsis;
}

#hub-search-bar input:-ms-input-placeholder {
    font-weight: 300;
    color: #6e6e6e;
    text-overflow: ellipsis;
}

/* Hide native IE reset */
#hub-search-bar input::-ms-clear {
    display: none;
}

/* Hide native webkit decorations */
#hub-search-bar input::-webkit-search-decoration,
#hub-search-bar input::-webkit-search-cancel-button,
#hub-search-bar input::-webkit-search-results-button,
#hub-search-bar input::-webkit-search-results-decoration {
    -webkit-appearance: none;
}

#hub-search-bar input:focus {
    outline: none;
}

/* Titles */

#inner-welcome-page #title-wrapper.update-shown {
    background-color: #FFF;
}

/* Update Banner */

#update-container {
    width: 100%;
    height: 60px;
    background-color: #FFD800;
}

#update-container #update-banner {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    width: 100%;
    min-width: 300px;
    height: 100%;
}

#update-container #update-banner > img {
    width: 24px;
    min-width: 24px;
}

#update-container #update-banner > p {
    color: #3E3A39;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.1px;
    line-height: 21px;
    margin-left: 10px;
}

#update-container #update-banner > div {
    margin-left: auto;
    margin-top: 0px;
}

/* Tile Content */

#content-container.update-shown {
    margin-top: 40px;
}

#carousel-content {
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-justify-content: space-between;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    width: 100%;
}

.carousel-tile {
    /* full width minus 2 * margin (24px) between for 3 tiles */
    width: calc((100% - 48px) / 3);
    margin: 0;
    text-align: left;
    overflow: hidden;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
}

.carousel-tile.light {
    background-color: #FFFFFF;
    color: #3E3A39;
}

.placeholder {
    background-color: #EFF1F2;
}

.placeholder {
    background-size: 100% 500px;
    background-repeat: no-repeat;
    background-image: linear-gradient(to right, rgba(239, 241, 242, 1) 0%,
        rgba(239, 241, 242, 1) 6px, rgba(247, 249, 250, 1) 46px,
        rgba(239, 241, 242, 1) 86px, rgba(239, 241, 242, 1) 100%);
    background-position: -60px 0px;
    animation: loading 2s linear 1s infinite;
}

@keyframes loading {
    0% {background-position: -90px 0px;}
    100% {background-position: 500px 0px;}
}

.carousel-tile img,
.carousel-tile div.image-placeholder {
    width: 720px;
    max-width: 100%;
    display: block;
    margin: 0 auto;
    -ms-flex-shrink: 0;
    -webkit-flex-shrink: 0;
    flex-shrink: 0;
}

.carousel-tile div.image-placeholder {
    width: calc(100% - 2px);
    /* images have a 2:1 aspect ratio */
    padding-top: 50%;
    margin: 1px;
}

.carousel-tile .content {
    margin: 20px;
    margin-top: 0px;
    -ms-flex: 1 1 auto;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
}

.carousel-tile .tile-tag-container {
    margin-top: 20px;
}

.carousel-tile .tile-tag {
    color: #6E6E6E;
    font-size: 11px;
    font-weight: 500;
    line-height: 18px;
    display: inline-block;
    padding: 2px 5px 0px 5px;
    border: 1px solid #6E6E6E;
    margin-top: 0px;
}

.carousel-tile .title-placeholder {
    height: 18px;
    margin-bottom: 0.5em;
}

.carousel-tile .title-placeholder.line0 {
    width: 30px;
    margin-top: 15px;
}

.carousel-tile .title-placeholder.line1 {
    width: 60%;
    margin-top: 10px;
    height: 24px;
}

.carousel-tile .title-placeholder.line2 {
    -ms-flex-grow: 1;
    -webkit-flex-grow: 1;
    flex-grow: 1;
    width: 80%;
    min-height: 56px;
    margin-top: 10px; 
}

.carousel-tile p.tile-title {
    font-weight: 700;
    font-size: 22px;
    line-height: 26px;
    word-break: break-word;
    margin: 0;
}

.carousel-tile p.tile-text {
    font-weight: 300;
    font-size: 16px;
    line-height: 24px;
    -ms-flex-grow: 1;
    -webkit-flex-grow: 1;
    flex-grow: 1;
    margin: 5px 0 30px;
}

.carousel-tile .button-div {
    overflow-wrap: break-word;
    max-width: calc(100% - 40px);
    margin-top: auto;
}

.carousel-tile .button-placeholder {
    border: thin solid #EFF1F2;
    cursor: pointer;
    padding: 6px 15px;
    width: 120px;
    margin-top: 10px;
}

.carousel-tile .button-placeholder .button-text-placeholder {
    width: 90px;
    height: 13px;
}

@media only screen and (max-width: 1225px) {
    body {
        font-size: 13px;
        font-size: 1.3rem;
        line-height: 18px;
        letter-spacing: 0.08px;
    }
    
    h1 {
        font-size: 28px;
        font-size: 2.8rem;
        line-height: 34px;
        margin: 20px 0;
    }
    
    a.button-primary {
        padding: 6px 15px;
    }
    
    #welcome-page-header {
        padding: 10px 20px;
    }

    #hub-search-bar {
        width: calc(50% - 20px);
    }
    
    #inner-welcome-page {
        padding-bottom: 20px;
    }
    
    /* title-wrapper, content-container, update-container */
    #inner-welcome-page > div {
        padding: 0 20px;
    }
    
    .inner-content {
        max-width: unset;
    }
    
    #update-container {
        height: 50px;
    }
    
    #update-container #update-banner > img {
        width: 18px;
        min-width: 18px;
    }
    
    #update-container #update-banner > p {
        font-size: 16px;
    }
    
    #content-container.update-shown {
        margin-top: 20px;
    }
    
    .carousel-tile {
        /* full width minus 2 * margin (20px) between for 3 tiles */
        width: calc((100% - 40px) / 3);
    }

    .carousel-tile .content {
        margin: 0 10px 10px;
    }
    
    .carousel-tile .tile-tag-container {
        margin-top: 10px;
    }
    
    .carousel-tile p.tile-title {
        font-size: 18px;
        line-height: 21px;
    }
    
    .carousel-tile p.tile-text {
        font-size: 13px;
        line-height: 18px;
        margin: 5px 0 15px;
    }
}

@media only screen and (max-width: 930px) {
    h1 {
        margin: 17px 0;
    }
    
    #welcome-page-header {
        padding: 5px 15px;
    }
    
    #hub-search-bar {
        width: calc(60% - 15px);
    }
    
    #hub-search-bar button[type=submit] {
        padding: 0 0 0 10px;
    }
    
    #hub-search-bar button[type=submit] svg {
        width: 18px;
        height: 18px;
    }
    
    #hub-search-bar input {
        font-size: 13px;
        line-height: 18px;
        padding: 0 10px;
    }
    
    #inner-welcome-page {
        padding-bottom: 15px;
    }
    
    /* title-wrapper, content-container, update-container */
    #inner-welcome-page > div {
        padding: 0 15px;
    }
    
    #update-container {
        height: 40px;
    }
    
    #content-container.update-shown {
        margin-top: 15px;
    }
    
    .carousel-tile {
        /* full width minus 2 * margin (10px) between for 3 tiles */
        width: calc((100% - 20px) / 3);
    }
}

@media only screen and (max-width: 620px) {
    #hub-search-bar {
        max-width: calc(100% - 154px);
    }
    
    #update-container #update-content p.update-text {
        display: none;
    }
    
    /* display tiles underneath each other */
    #carousel-content {
        -ms-flex-direction: column;
        -webkit-flex-direction: column;
        flex-direction: column;
        -webkit-align-items: center;
        align-items: center;
    }
    
    .carousel-tile {
        width: 100%;
        max-width: 360px;
        margin-bottom: 10px;
    }
}
